class Personale::RiepilogoVisiteMedicheController < DefaultController
  require_role self.parent_name.underscore
  active_scaffold :personale do |config|
    config.label = Application.controller_label(self)
    fields = [ :name, :mansioni, :visita_generale, :audiometria, :spirometria, :ematochimici, :drug_test ]
    config.actions.add :field_search, :config_list, :export
    
    ## colonne
    config.columns = fields
    config.field_search.columns = [:cognome, :mansioni]
    config.update.columns = [:mansioni]
    config.create.columns = []
    
    config.columns[:name].search_sql = "CONCAT(cognome, nome)"
    config.columns[:name].sort_by :sql => 'concat(personale.cognome, personale.nome)'
    config.columns[:name].label = "Nome"
    list.sorting = {:name => 'ASC'}
    config.columns[:visita_generale].sort_by :method => 'visita_generale'
    config.columns[:audiometria].sort_by :method => 'audiometria'
    config.columns[:spirometria].sort_by :method => 'spirometria'
    config.columns[:ematochimici].sort_by :method => 'ematochimici'
    config.columns[:drug_test].sort_by :method => 'drug_test'
    
    ## colonne
    config.columns[:mansioni].form_ui = :select
    config.columns[:mansioni].search_ui = :multi_select
    config.columns[:mansioni].inplace_edit = :ajax
    
    ## azioni
    #config.actions.exclude :create
    config.columns[:mansioni].clear_link
    config.columns[:name].set_link('nested', :parameters => {:associations => :visite_mediche})
  end
  
  def conditions_for_collection
    ["personale.id IN (select personale_id FROM rapporti_di_lavoro WHERE
      (rapporti_di_lavoro.data_fine IS NULL AND rapporti_di_lavoro.tipo_rapporto_di_lavoro_id != 5) OR
      (rapporti_di_lavoro.data_fine > ? AND rapporti_di_lavoro.tipo_rapporto_di_lavoro_id != 5))", Date.today]
  end
end
